/*
  1.1 题面描述
    小杨想要构造一个 m*m 的 N 字矩阵（m为奇数）。
    这个矩阵的从左上角到右下角的对角线、第 1 列和第 m 列都是半角加号 +，其余都是半角减号 -。
    例如，一个 5*5的 N 字矩阵如下:
       +---+
       ++--+
       +-+-+
       +--++
       +---+
    请你编写程序帮小杨根据给定的 m 打印出对应的 N 字矩阵。
  1.2 输入格式
    第⼀⾏包含⼀个正整数 m。
  1.3 输出格式
    输出对应的 N 字矩阵。
  1.4 样例1
    输入:
      5
    输出:
      +---+
      ++--+
      +-+-+
      +--++
      +---+
  1.5 数据范围
    对于全部数据，保证有 3 <= m <= 49，且 m 为奇数。
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n;

    cin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n ; j++) {
            if (j == 1 || j == n || j == i) {
                cout << "+";
            } else {
                cout << "-";
            }
        }
        cout << endl;
    }

    return 0;
}